package pro.softzhang.algo.lc1100;


import pro.softzhang.algo.flag.knowledge.KDynamicPlanning;
import pro.softzhang.algo.flag.theme.TMathTribonacci;

/**
 *
 */
@TMathTribonacci
public class LC1137_NthTribonacciNumber {
    public static void main(String[] args) {
        System.out.println(new Solution().tribonacci(4));
    }

    /**
     *
     */
    @KDynamicPlanning
    static
    class Solution {
        public int tribonacci(int n) {
            if(n == 0) return 0;
            if (n <= 2) return 1;
            int[] dp = new int[n + 1];
            dp[0] = 0;
            dp[1] = 1;
            dp[2] = 1;
            for(int i = 3; i <= n; i++) {
                dp[i] = dp[i - 3] + dp[i - 2] + dp[i - 1];
            }
            return dp[n];
        }
    }
}
